package com.test.application.designPatterns.singleton.demo8;

/**
 * 描述: 破坏单例模式
 * 作者: yanruizhi
 * 时间: 2024/9/23 11:51
 */
public class Singleton8 {

    private static class SingletonHolder {
        private static final Singleton8 instance = new Singleton8();
    }

    public static Singleton8 getInstance() {
        return SingletonHolder.instance;
    }

    //下面是解决单例模式被破坏的方法
    //1 定义一个标识,用来判断是否是第一次创建对象
    private static boolean flag = false;

    private Singleton8() {
        //2 判断标识是否为true,如果是,则说明已经创建过对象了,直接返回
        if (flag) {
            throw new RuntimeException("单例模式不允许创建多个实例");
        }
        //3 如果标识为false,则说明是第一次创建对象,将标识设置为true
        flag = true;
    }
}
